package org.xteam.sled.semantic.exp;

import org.xteam.sled.semantic.InstructionConstructor;

public class ExpInstanceTagged extends Exp {

	private Exp expr;
	private InstructionConstructor cons;
	private int uid;

	public ExpInstanceTagged(Exp expr, InstructionConstructor cons, int uid) {
		this.expr = expr;
		this.cons = cons;
		this.uid = uid;
	}
	
	public Exp getExpr() {
		return expr;
	}
	
	public InstructionConstructor getConstructor() {
		return cons;
	}
	
	public int getUid() {
		return uid;
	}

	@Override
	public void visit(IExpVisitor visitor) {
		visitor.visitInstanceTagged(this);
	}
	
	@Override
	public String toString() {
		return cons + "." + uid + " => " + expr;
	}

}
